import axiosConfig from "axios";
import base from "@/config/constant/constant.js";
import store from "@/store/index.js";

const axios = axiosConfig.create({
     //路径请求头配置
    // baseURL:base.baseUrl,
    //网络请求的公共配置
    timeout:10000,  // 9秒以后如果没有请求则取消请求
    //headers 是发送时的请求头
    headers:{
        "Accept":'application/json',
        "Content-Type":"application/json",
    },
    baseURL: base.baseurl //统一请求请求路径的头部
});
//拦截器最常用的
//1.发送数据之前
axios.interceptors.request.use(
    config=>{
        //获取token
        let AUTHORIZATION_TOKEN = window.localStorage.getItem("AUTHORIZATION_TOKEN")
        //如果有token 则把token放到请求头
        if(AUTHORIZATION_TOKEN!=null) {
            config.headers.AUTHORIZATION_TOKEN  = AUTHORIZATION_TOKEN;
        }
        return config;        //返回所有的网络请求信息
    },
    error => {
        //返回所以错误的信息
        return Promise.reject(error)
    }
);
//2.获取数据之前
axios.interceptors.response.use(
    response=>{
        //数据获取完成，关闭头部加载动画
        if(response.status===200){
               store.commit('downHeaderLoad')
        }

        return response.status===200 ? Promise.resolve (response) : Promise.reject(response)
    },
    error => {
        //错误的状态码的处理
        // const {response} = error;
        // errorHandle(response.status,response.info)
    }
)

export  default axios;